// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2007-9-15 18:54:15

// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   p0.java

package com.zelix;

import java.io.PrintWriter;
import java.util.*;

// Referenced classes of package com.zelix:
//            zu, o0, x0, fc

public abstract class p0
    implements x0
{

    protected Stack a;
    public static int b;
    private static String z[];

    public p0()
    {
        a = new Stack();
    }

    public void a(String s, String s1, PrintWriter printwriter)
        throws fc
    {
        if(s1 == null)
        {
            throw new fc(z[1] + zu.a(s) + z[0]);
        } else
        {
            printwriter.print(s);
            return;
        }
    }

    public abstract void a(String s, String s1, HashMap hashmap, HashMap hashmap1, HashMap hashmap2)
        throws fc;

    public void a(o0 o0_1, PrintWriter printwriter)
    {
        printwriter.print(o0_1.toString());
    }

    public abstract void a(o0 o0_1, HashMap hashmap);

    public final void a(String s)
    {
        int i;
        int k;
        k = b;
        i = a.search(s);
        if(i == -1) goto _L2; else goto _L1
_L1:
        int j = 0;
        if(k == 0) goto _L4; else goto _L3
_L3:
        a.pop();
        j++;
_L4:
        if(j < i) goto _L3; else goto _L2
_L2:
    }

    protected String a(int i)
    {
        int j = a.size();
        if(a.empty() || j < i)
            return null;
        else
            return (String)a.get(j - i);
    }

    protected String a()
    {
        if(a.empty())
            return null;
        else
            return (String)a.peek();
    }

    protected boolean b(String s)
    {
        if(a.empty())
            return false;
        else
            return a.search(s) != -1;
    }

    public void b(o0 o0_1, PrintWriter printwriter)
    {
        a.push(o0_1.a());
        printwriter.print(o0_1.toString());
    }

    public abstract void b(o0 o0_1, HashMap hashmap);

    private static String z(char[] chs) {
        for (int i = 0; i < chs.length; i++) {
            byte key = 0;
            switch (i % 5) {
                case 0:
                    key = 0x72;
                    break;
                case 1:
                    key = 15;
                    break;
                case 2:
                    key = 125;
                    break;
                case 3:
                    key = 5;
                    break;
                default:
                    key = 112;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static 
    {
        String as[];
        as = new String[2];
        as[0] = z("U/U4Y".toCharArray());
        as[1] = z("1g\034w\021\021{\030wP\026n\tdP\035z\tv\031\026j]j\026R{\034bPH/Z".toCharArray());
        z = as;

    }
}